Developer Home Contents Search Feedback Support Intel(r)

Application Note

Digital Content Channels

Previous Section | Next Section
Table of Contents

Chapter 3 - Music Channel

The Music Content channel application gives the user a jukebox interface for previewing CD-albums and songs. This provides a great user experience by storing high-quality audio and video on CD. The application delivers high-quality music WAV files for playback off the CD, and music videos captured in Indeo Video 5.0 format are provided as well. The channel plays back music to the user based on his or her preferences for rock, jazz, new age, classical and other popular formats.

The music application, graphics and current audio and video samples are delivered on CD-ROM. The front end includes both a music and advertising database to target music based on the user’s preferences, while the database, music videos and audio tracks are kept current by a BackWeb server. The database can reside locally or be stored on a server on the Internet. In this case, the database is stored locally on the user’s hard drive.

Databases are one of the methods for providing content management of a channel. Visual Basic 5* was selected as the programming language to integrate all the key elements of the application. Since the application is delivered on CD, the client interface can be rich with great graphics, audio and video integrated into a high tech interface.


Figure 3-1. Music Channel Architecture

Client User Interface


Figure 3-2 Music Channel User Interface

The application is written in Visual Basic 5.0* using standard Visual Basic. A variety of controls are used to develop the application: Data, Label , Multimedia MCI , WebBrowser , and PictureBox. The interface includes a high tech graphic design stored as a GIF file, which provides the background for the application. Visual basic applications are created by inserting controls into a form and then writing scripts for user events.

The Label and Picture Box controls provide the dynamic elements of the application. PictureBox controls embed the graphic elements such as the background, buttons, and album covers arranged on top of the background. Label controls contain the text information about the artist, or CD.

The client user interface links information from the database to Label and PictureBox controls to display information about artists, CD albums and tracks. DataControls are inserted into the form to create a link to the actual database where information is stored. User interface elements are then tied to the current record in the database by specifying the DataControl and Datafield labels in the PictureBox or Label control’s properties. An advertising database is searched to provide banners which can be targeted to a user’s interests. An ad-banner interface with rotating ads was implemented using a PictureBox control and Timer.

Four buttons on the user interface navigate through the music CD albums and the tracks within each album. By selecting the buttons the application pulls up the next album stored in the database and then updates all the user elements. The next step is to load the appropriate audio track or song to play when a user presses one of the navigation keys.

Loading a Song

The use of a database adds the flexibility to support a large variety of audio sources, determine what audio source is being played and where the source resides. Controls are then made visible or invisible depending on whether audio or video is being played back. Assets are stored by RecordingID and TrackNumber. The format of the file, whether WAV or AVI, is also stored in the database to determine how the song is played. Other formats could easily be added, such as MIDI, AC3 and other audio compression files.

Loading a Song

MMControl1.Command = "close"

Image7.Visible = True

ActiveMovie1.Visible = False

If (Albums.Recordset("Format") = "HD") Then

MMControl1.DeviceType = "WaveAudio"

MMControl1.filename = "c:\demo\music\assets\" & Albums.Recordset("RecordingID") & "-" & Tracks.Recordset("TrackNumber") & ".wav"

MMControl1.Command = "open"

MMControl1.Command = "Play"

End If

If (Albums.Recordset("Format") = "CD") Then

MMControl1.DeviceType = "WaveAudio"

MMControl1.filename = lpRootPathName & "demo\music\assets\" & Albums.Recordset("RecordingID") & "-" & Tracks.Recordset("TrackNumber") & ".wav"

MMControl1.Command = "open"

MMControl1.Command = "Play"

End If

If (Albums.Recordset("Format") = "CDV") Then

WebBrowser1.Visible = False

Image7.Visible = False

ActiveMovie1.Visible = True

ActiveMovie1.filename = lpRootPathName & "demo\music\assets\" Albums.Recordset("RecordingID") & "-" & Tracks.Recordset("TrackNumber") & ".avi"

End If

Image7.Picture = LoadPicture("c:\demo\music\assets\" & Albums.Recordset("RecordingID") & "-" & 1 & ".gif")

WebBrowser1.Visible = False

Figure 3-3 Code for loading songs

Data Controls provide a link to a database. The data set control for the music database is initialized by setting the control’s properties Name to Music.mdb and the record name to "records." Before loading a song, the Format database field is tested and determines the type of file to play. The Format field is set to HD, CD and CDV, and corresponds to Hard Disk audio, CD audio and CD video, respectively.

The code for playing an audio or video track is shown above. Wave audio is played using the Multimedia MCI control. The control works by specifying the Device type as WAVAudio and then specifying the filename for the audio file. Two MCI commands are then issued to open the file and then play it. Video files residing on CD are played using ActiveMovie. The ActiveMovie control is first made visible and filename set to the appropriate AVI file. When playing back a video file, the album cover is made invisible. The album cover is loaded regardless of the type of asset but is only made visible by audio clips. The same technique of making elements visible or invisible is used to provide Web access using the WebBrowser control.

WebBrowser Control

The Standard WebBrowser control allows for the integration of live Web pages into a Visual Basic application. In the music application, the control is used to buy albums through an e-Commerce server when the user has made a purchasing decision. The WebBrowser control can embed Web pages on the Internet into the Visual Basic’s user interface. In the music application, the WebBrowser control is made visible when the purchase button is pressed. This pulls up the music purchase Web site page containing the Microsoft Wallet* and address controls. Loading another song by hitting one of the scroll buttons makes the WebBrowser control invisible by setting the WebBrowser1.Visible attribute to "FALSE." Using advertising banners, the same method could be used to link to live audio concerts broadcast on the Web, electronic commerce servers, Web sites or advertisers. The banners could announce concerts, live events or CD-album sales.

WebBrowser1.Visible = True

WebBrowser1.Navigate "134.134.246.52/musicpay.htm"

Figure 3-4 WebBrowser Code for accessing the Internet

Advertising Banners

Advertising banners use a simple Visual Basic timer that can be set to display new graphics periodically. At given intervals, it simply moves through the advertising database and displays the next record. When the image is clicked, the URL for the advertising banner is invoked and the Web site can be displayed according to the information being shown. Although not implemented, an SQL search could be done based on the user preferences. The next section goes into more detail about databases.

Dim Count As Integer

Count = Count + 1

Advertising.Recordset.MoveNext

If (Advertising.Recordset.EOF = True) Then

Advertising.Recordset.MoveFirst

Else

End If

If (Count < MaxRecords) Then

Count = 1

End If

AdvertisingPic.Picture = LoadPicture("c:\demo\music\assets\" & Data4.Recordset("adname") & ".gif")

Figure 3-5 Advertising Banner Code using the Timer Control

Content Management

Content management in the music application was implemented using a Microsoft Access Database*. The previous section already covered asset management using the database. This section describes scrolling through albums and updating of the database information on the user interface.

Microsoft Access Database

The Microsoft Access* database provides an easy-to-use framework for developing database applications. Integration with Visual Basic 5.0* makes it easy to develop simple client-side databases for extracting information. In this case, four databases were defined: artist, album, track and advertising. These databases are linked to provide the user with a potentially large amount of music information that matches his or her interests.

Relational Databases

A relational database consists of data stored in tables by columns and rows. Columns are essentially fields, and rows are referred to as records. Fields define the data that resides in a particular database (text versus dates for example). Each row in a database contains information about a particular field, and it is expected that each row be unique. Databases are normally queried using SQL statements, which search a particular database and return the records or rows that match the search criteria.

Local Database

The music application provides a local database of music albums, tracks and artists to present information to the user corresponding to the selected track. The user can browse through the local albums or tracks in the current database, and the application will display an album cover when playing audio tracks, and video clips for a music video. Music audio tracks can also be pushed from a BackWeb server to the client. This occurs in the background with no intervention from the user. The user can subscribe to channels based on preferences such as rock and country, providing both targeted advertising and delivery of music that the user is most interested in. With BackWeb, the local database is updated with a new one, and a new audio track is delivered over the Web and played on the user’s local hard drive. The user receives the best quality audio from either the CD or the HD.

Scrolling Through Albums

The music application allows the user to scroll through albums. The Music Collections database uses the standard template provide by Microsoft Access*, and consists of three tables: a record, tracks and an artist table. These store information about a particular album, name of artist and record label, and the information is displayed and navigated using the standard data control provided with Visual Basic 5.0. Setting up a data control consists of setting up the Connect property to set the database (Access in our case), the Database name (set to music.mdb) and finally the record source. Once these are set, it is relatively easy to traverse the records in the database to extract needed information.

A record set can represent the information stored in a base table or the results of an SQL search. In our application, the Album table is navigated by using the MoveNext and MoveFirst functions. Before moving to the last record, the EOF flag is checked in order to reset the database to the first entry when the user is at the last record.


Albums.Recordset.MoveNext

If (Albums.Recordset.EOF = True) Then

Albums.Recordset.MoveFirst

Else

End If

Tracks.RecordSource = "Select * From Tracks Where RecordingID=" & Albums.Recordset("RecordingID")

Tracks.Refresh

Artists.RecordSource = "Select * From [Recording Artists] Where RecordingArtistID=" & Albums.Recordset("RecordingArtistID")

Artists.Refresh

Load_Song

Figure 3-6 Album Scrolling Albums Code

After moving to the next record in the albums, the Tracks and Artist databases are updated to be set to the appropriate track and recording artist. First an SQL search is made of the records, with the Albums set to the recording ID. The record is then refreshed in the application to update the information displayed in each of the data displayed in the application. Visual Basic allows for resources to be set to a particular field in a database. and as the database records are moved to the next field, the information displayed in label controls is updated as well. The album name, artist name, recording studio, name of track and price information is all updated as each database is first searched and then refreshed. Databases provide a lot of flexibility to add supplemental information about the artist, CD-album, or songs. These records can be searched based on the user’s preferences for artists or music genre.

Content Delivery

The WAV files, music.mdb and advert.mdb databases are delivered on CD-ROM with rich multimedia assets. New WAV files and both databases are updated using push technology and ensures users are always updated with the latest songs and CD-albums. Electronic distribution of music is one of the applications made possible with push technology.

CD Music Videos and Albums

The CD-ROM for the music channel contains the client software and multimedia assets for the music channel. The CD delivers music videos using Indeo Video 5.0 and high quality audio tracks using 44Khz 16-bit wave audio. High-resolution (800x600), 24-bit graphics enhance the user interface to provide a high resolution graphic interface. The multimedia assets provide a much better user experience than possible over the Internet, and a BackWeb* server is used to provide updated content.

Pushing New Content

The BackWeb client needs to be connected to the BackWeb server to receive new audio tracks. The BackWeb server delivery mechanism works by sending what is called an InfoPak (Appendix E describes in detail the BackWeb server solution.) We have implemented software that transfers the files in this InfoPak into the appropriate directory for the music channel. (Refer to Appendix F for a description of the push controller designed using the BackWeb SDK*.) The files in the InfoPak contain a new database of audio tracks and albums as well as the audio content. The advertising database and ad-banners can also be updated using the same mechanism, and the files delivered by BackWeb could be dependent on whatever music channels the user subscribes to: rock, country and so on.

Indeo Audio was used to compress the audio files for delivery using Push. At 8:1 compression, audio files can be delivered with minimal reduction in quality. A three-minute song with good quality, for instance, could be delivered in about 20 minutes. With compression, push technology provides a viable solution for electronic distribution of music.

Electronic Music Distribution

Music samples and content could be delivered in a variety of compression formats, depending on application needs. Compressing the music can deliver a lot of music samples, assisting the user in album buying decisions. Complete, uncompressed versions of songs could also be downloaded, although it would take close to an hour. (On the other hand, , music fans would likely deem the wait worthwhile, in order to obtain new songs from their favorite artists.)

Album art and band pictures could also be delivered. Supplemental album art could be distributed as a benefit to subscribing to a channel, and band or concert pictures could be delivered to fans, who may want to print and store them in digital scrapbooks. The push server would deliver software updates to the channel’s user interface.

Security is a major concern with electronic distribution, and standards for encryption and digital watermarking of music content -- such as the International Standard Recording Code(ISRC) for watermarking or RSA for encryption -- are evolving. Artists receive a continued revenue stream from royalty payments from broadcast or distribution of their songs through licensing organizations, and online distribution of music promises to increase the revenues for both artists and music distributors. However, music channels must address encryption, digital watermarking and royalty collections before distribution becomes a reality.

Server Components


 

Figure 3-7 Music Channel

Web Site

A theoretical music channel with all the server elements is shown in Figure 3-7. The Web site contains updated or additional information such as: the latest music news, concert information, album releases, lyric, sheet music and band information.

Live Concerts and Band Interviews

To promote merchandise and album sales, live events such as concerts and band interviews can be broadcast across the Internet. A chat server could be used as a way for fans to ask questions about their favorite bands. Real-time data like audio or video and chat provide a sense of community in the music world. Advertising targeted at concert demographics could sell concert albums or T-shirts at special prices during events, thus providing additional revenue streams for existing albums and merchandise.

Electronic Commerce

The e-commerce server enables users to purchase the latest albums, concert tickets, and other merchandise. Using Microsoft Wallet or CyberCash*, consumers can easily purchase merchandise through secure transactions. The music application also provides for electronic commerce using Microsoft’s Commerce Server*. This was used as an example because the server handles order processing, order tracking, inventory, credit card transactions, product information, pricing, shipping and so on required by electronic commerce. The user then has the ability to listen to sample audio tracks distributed either on CD or updated via the Web, and then purchase the CD-albums online.

The database server stores information such as: online product catalogs, customer purchases, music CDs by category, advertising content based on demographics, and user selections and preferences.

Embedding Microsoft Wallet* Into Web Pages

Microsoft Wallet* is intended to be filled out by the user so that his or her address and credit card information are already recorded prior to making a purchase. Multiple addresses and credit cards can be entered in each control. The credit card information is password-protected at the client to prevent anyone else from making a purchase. Electronic commerce within channels requires integration of the product information into a simple Web page. Once the user presses the Buy button, the order can be processed by the Microsoft Merchant Server* or with a similar e-commerce server solution.

<object id="addrSelector"

classid="clsid:87D3CB63-BA2E-11cf-B9D6-00A0C9083362"

codebase="MSWallet.cab#Version=2,1,0,1374"

align="left" border="0" hspace="20"

width="154" height="123">

</object>

<object id="paySelector"

classid="clsid:87D3CB66-BA2E-11cf-B9D6-00A0C9083362"

codebase="MSWallet.cab#Version=2,1,0,1374" align="baseline"

border="0" hspace="20" width="154" height="123">

<param name="AcceptedTypes" value="*:*">

<param name="Total" value="134.50">

</object>

Figure 3-8 Code to Embed Microsoft Wallet* into Web Pages

Summary

The music channel delivers a software application on CD-ROM to sell CD-albums and promote music artists. Music video and songs are delivered using high-quality Indeo Video 5.0 and Wave audio music samples, and Indeo Audio is used to provide compressed audio for faster delivery using push. Visual Basic 5.0 provides a variety of controls to develop applications rapidly and deliver the best possible user experience, while WebBrowser control provides the integration of the client application with server applications such as chat, electronic commerce and live audio streaming. Databases and push technology allow the music being delivered to be targeted to the users interests. These are the key elements that deliver an exciting music channel that will attract fans and increase CD-album sales.

 

 

*Other brands and names are the property of their respective owners.

© 1997 Intel Corporation. All rights reserved.


* Legal Information © 1998 Intel Corporation